1. Field of the Disclosure
The disclosure is related to systems and methods to enhance the user experience of applications for proximity-based peer-to-peer mobile computing.
2. Description of the Related Art
Wireless communication systems have developed through various generations, including a first-generation analog wireless phone service (1G), a second-generation (2G) digital wireless phone service (including interim 2.5G and 2.75G networks), a third-generation (3G) high speed data, Internet-capable wireless service and a fourth-generation (4G) service (e.g., Long-Term Evolution (LTE) or WiMax). There are presently many different types of wireless communication systems in use, including Cellular and Personal Communications Service (PCS) systems. Examples of known cellular systems include the cellular Analog Advanced Mobile Phone System (AMPS), and digital cellular systems based on Code Division Multiple Access (CDMA), Frequency Division Multiple Access (FDMA), Time Division Multiple Access (TDMA), the Global System for Mobile access (GSM) variation of TDMA, etc.
In general, user equipments (UEs), such as telephones, tablet computers, laptop and desktop computers, certain vehicles, etc., can be configured to connect with each other either locally (e.g., Bluetooth, local Wi-Fi, etc.) or remotely (e.g., via cellular networks, through the Internet, etc.). Furthermore, certain UEs may also support proximity-based peer-to-peer (P2P) communication using certain wireless networking technologies (e.g., Wi-Fi, Bluetooth, Wi-Fi Direct, etc.) that enable devices to make a one-to-one connection or simultaneously connect to a group that includes several devices in order to directly communicate with one another.
A P2P network is a type of decentralized and distributed network architecture in which individual nodes in the network (called “peers”) act as both suppliers and consumers of resources. In contrast, in the centralized client-server model, client nodes request access to resources provided by central servers. In a P2P network, tasks (such as searching for files or streaming audio/video) are shared among multiple interconnected peer devices that each make a portion of their resources (such as processing power, disk storage, network bandwidth, etc.) directly available to other network participants, without the need for centralized coordination by a server.
The P2P software running on each peer device typically provides service advertisement and discovery, session setup, session management (e.g., join/leave), and data transfer. A problem with current P2P software is that there is no perfect solution to setup the appropriate wireless network connectivity for a peer device. Current P2P software solutions assume that either the user manually sets up network connectivity (e.g., WiFi, WiFi Direct, LTE-Direct, Bluetooth, etc.) among peer devices before startup, or the application hard-code sets up network connectivity among the peer devices before startup. However, the former requires the manual intervention of the user, and the latter introduces additional complexity and is more prone to error.
Another problem with current P2P software is that a peer device may have difficulty finding an appropriate supplier peer device. During the advertisement/discovery period, supplier peer devices usually advertise “well-known service name” as a string, and consumer peer devices discover the supplier peer device using the prefix of this well-known name. However, with more and more peer devices having P2P service capability, this simple advertisement/discovery mechanism makes it difficult for consumer peer devices to find appropriate supplier peer devices.